package cn.tedu.innerclass;

/**
 * @author :Colin
 * @version 创建时间: 2021/6/25 14:39
 * 本类用于测试内部类的入门案例
 */
public class TestInner1 {
    public static void main(String[] args) {
        //创建内部类对象
        /*外部类名.内部类名 对象名 =外部类对象.内部类对象*/
        Outer.Inner oi = new Outer().new Inner();
        System.out.println(oi.sum);
        oi.delete();
        new Outer().find();
    }


}
class Outer{
    String name;
    private int age;
    public void find(){
        System.out.println("outer find()");
        //测试外部类是否可以使用内部类的资源
        //System.out.println(sum);--不能直接使用内部类的资源
        //delete();
        /*外部类如果想要使用内部类的资源，必须先创建内部类对象
        通过内部类对象来调用内部类的资源
         */
        Inner inner =new Inner();
        System.out.println(inner.sum);
        inner.delete();
        class Inner2{

        }
    }
    //创建内部类Inner--外部类的特殊成员
    /*根据内部类的位置不同，分为成员内部类和局部内部类
    * 局部内部类（方法里）
    * 成员内部类（类里方法外）*/
    class Inner{
        //2.1定义内部类的成员变量
        int sum=10;
        public void delete(){
            System.out.println("Inner...delete");
            //测试内部类是否可以使用外部类的资源
            /*结论：内部类可以直接使用外部类的资源，也包含私有资源*/
            System.out.println(name);
            System.out.println(age);
            //find();
        }

    }
}
